package database.dao;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import database.table.Bsgz;
import database.table.Dbb;
import database.table.Gdb;
import database.table.Hfb;
import database.table.Jdb;
import database.table.Khda;
import database.table.Wgb;
import database.table.Zyda;
import database.table.Zys;

import database.dao.BsgzDao;
import database.dao.DbbDao;
import database.dao.GdbDao;
import database.dao.HfbDao;
import database.dao.JdbDao;
import database.dao.KhdaDao;
import database.dao.WgbDao;
import database.dao.ZydaDao;
import database.dao.ZysDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig bsgzDaoConfig;
    private final DaoConfig dbbDaoConfig;
    private final DaoConfig gdbDaoConfig;
    private final DaoConfig hfbDaoConfig;
    private final DaoConfig jdbDaoConfig;
    private final DaoConfig khdaDaoConfig;
    private final DaoConfig wgbDaoConfig;
    private final DaoConfig zydaDaoConfig;
    private final DaoConfig zysDaoConfig;

    private final BsgzDao bsgzDao;
    private final DbbDao dbbDao;
    private final GdbDao gdbDao;
    private final HfbDao hfbDao;
    private final JdbDao jdbDao;
    private final KhdaDao khdaDao;
    private final WgbDao wgbDao;
    private final ZydaDao zydaDao;
    private final ZysDao zysDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        bsgzDaoConfig = daoConfigMap.get(BsgzDao.class).clone();
        bsgzDaoConfig.initIdentityScope(type);

        dbbDaoConfig = daoConfigMap.get(DbbDao.class).clone();
        dbbDaoConfig.initIdentityScope(type);

        gdbDaoConfig = daoConfigMap.get(GdbDao.class).clone();
        gdbDaoConfig.initIdentityScope(type);

        hfbDaoConfig = daoConfigMap.get(HfbDao.class).clone();
        hfbDaoConfig.initIdentityScope(type);

        jdbDaoConfig = daoConfigMap.get(JdbDao.class).clone();
        jdbDaoConfig.initIdentityScope(type);

        khdaDaoConfig = daoConfigMap.get(KhdaDao.class).clone();
        khdaDaoConfig.initIdentityScope(type);

        wgbDaoConfig = daoConfigMap.get(WgbDao.class).clone();
        wgbDaoConfig.initIdentityScope(type);

        zydaDaoConfig = daoConfigMap.get(ZydaDao.class).clone();
        zydaDaoConfig.initIdentityScope(type);

        zysDaoConfig = daoConfigMap.get(ZysDao.class).clone();
        zysDaoConfig.initIdentityScope(type);

        bsgzDao = new BsgzDao(bsgzDaoConfig, this);
        dbbDao = new DbbDao(dbbDaoConfig, this);
        gdbDao = new GdbDao(gdbDaoConfig, this);
        hfbDao = new HfbDao(hfbDaoConfig, this);
        jdbDao = new JdbDao(jdbDaoConfig, this);
        khdaDao = new KhdaDao(khdaDaoConfig, this);
        wgbDao = new WgbDao(wgbDaoConfig, this);
        zydaDao = new ZydaDao(zydaDaoConfig, this);
        zysDao = new ZysDao(zysDaoConfig, this);

        registerDao(Bsgz.class, bsgzDao);
        registerDao(Dbb.class, dbbDao);
        registerDao(Gdb.class, gdbDao);
        registerDao(Hfb.class, hfbDao);
        registerDao(Jdb.class, jdbDao);
        registerDao(Khda.class, khdaDao);
        registerDao(Wgb.class, wgbDao);
        registerDao(Zyda.class, zydaDao);
        registerDao(Zys.class, zysDao);
    }
    
    public void clear() {
        bsgzDaoConfig.clearIdentityScope();
        dbbDaoConfig.clearIdentityScope();
        gdbDaoConfig.clearIdentityScope();
        hfbDaoConfig.clearIdentityScope();
        jdbDaoConfig.clearIdentityScope();
        khdaDaoConfig.clearIdentityScope();
        wgbDaoConfig.clearIdentityScope();
        zydaDaoConfig.clearIdentityScope();
        zysDaoConfig.clearIdentityScope();
    }

    public BsgzDao getBsgzDao() {
        return bsgzDao;
    }

    public DbbDao getDbbDao() {
        return dbbDao;
    }

    public GdbDao getGdbDao() {
        return gdbDao;
    }

    public HfbDao getHfbDao() {
        return hfbDao;
    }

    public JdbDao getJdbDao() {
        return jdbDao;
    }

    public KhdaDao getKhdaDao() {
        return khdaDao;
    }

    public WgbDao getWgbDao() {
        return wgbDao;
    }

    public ZydaDao getZydaDao() {
        return zydaDao;
    }

    public ZysDao getZysDao() {
        return zysDao;
    }

}
